home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / VGADOC4B.ZIP / 8514.TXT next >
Text File  |  1995-09-29  |  31KB  |  659 lines

  1. IBM 8514/A
  2.  
  3. 8514/A clones:
  4.  
  5. ATI 38800-1 (MACH 8), 68800 (MACH 32)
  6. Chips&Tech 82c480
  7. Paradise  WD95c00/01
  8.  
  9.  
  10. 0102h (R/W):  Setup Control Register
  11. bit     0  If set the adapter is enabled, if clear the card is
  12.            invisible to the system.
  13.       1-7  Reserved(0)
  14.  
  15. 02E8h W(R):  Display Status Register
  16. bit     0  SENSE is the result of a wired-OR of 3 comparators, one
  17.            for each of the RGB video signal.
  18.            By programming the RAMDAC for various values
  19.            and patterns and then reading the SENSE, the monitor type
  20.            (color, monochrome or none) can be determined.
  21.         1  VBLANK. Vertical Blank State
  22.            If Vertical Blank is active this bit is set.
  23.         2  HORTOG. Horizontal Toggle
  24.            This bit toggles every time a HSYNC pulse starts
  25.      3-15  Reserved(0)
  26.  
  27. 02E8h W(W):  Horizontal Total Register (H_TOTAL)
  28. bits  0-8  Horizontal Total defines the total horizontal scan line width
  29.            including the display, blank and sync times.
  30.            All horizontal timings are in "double nuggets"
  31.            (8 or 10 pixels depending on the state of MEM_CNTL[0]).
  32.            The actual value is one larger than this register.
  33.      9-15  Reserved(0)
  34. Note: this register is written at 02E8 and read at 26E8h.
  35.  
  36. 02EAh (R/W):  DAC Mask Register (DAC_MASK)
  37. bits  0-7  DAC mask. This value is anded to the pixel data before going
  38.            to the DAC. Set to 0FFh for normal operation.
  39. Note: In VGA pass through mode writes to the VGA palette address 03C6h
  40.       will go to this address to allow the 8514/A to mirror palette changes.
  41.  
  42. 02EBh (R/W):  DAC Read Index Register (DAC_R_INDEX)
  43. bits  0-7  DAC Read Index. Indicates which of the 256 palette entries
  44.            will be read by the current sequence of I/O read operations
  45.            to the DAC_DATA (02EDh) register.
  46. Note: In VGA pass through mode writes to the VGA palette address 03C7h
  47.       will go to this address to allow the 8514/A to mirror palette changes.
  48.  
  49. 02ECh (R/W):  DAC Write Index Register (DAC_W_INDEX)
  50. bits  0-7  DAC Write Index. Indicates which of the 256 palette entries
  51.            will be written by the current sequence of I/O write operations
  52.            to the DAC_DATA (02EDh) register.
  53. Note: In VGA pass through mode writes to the VGA palette address 03C8h
  54.       will go to this address to allow the 8514/A to mirror palette changes.
  55.  
  56. 02EDh (R/W):  DAC DATA Register (DAC_DATA)
  57. bits  0-7  DAC Data.
  58. Note: In VGA pass through mode writes to the VGA palette address 03C9h
  59.       will go to this address to allow the 8514/A to mirror palette changes.
  60.  
  61. 06E8h W(W):  Horizontal Displayed Register (H_DISP)
  62. bits  0-7  Number of "double nuggets"-1 displayed in a scan line.
  63.      8-15  Reserved(0)
  64. Note: In the 8514/A this register is Writeonly,
  65.       In the Chips&Tech 82c480 it is Read/Write.
  66.  
  67. 0AE8h W(W):  Horizontal Sync Start Register (H_Sync_STRT)
  68. bits  0-7  Hsync starts at (H_SYNC_STRT +1) double nugget periods.
  69.      8-15  Reserved(0)
  70. Note: In the 8514/A this register is Writeonly,
  71.       In the Chips&Tech 82c480 it is Read/Write.
  72.  
  73. 0EE8h W(W):  Horizontal Sync Width Register (H_SYNC_WID)
  74. bits  0-4  Width of the Horizontal Sync pulse in "double nuggets".
  75.         5  Horizontal Sync Polarity (HSYNCPOL).
  76.            If set the Horizontal Sync Pulse is Negative, else Positive.
  77.      6-15  Reserved(0)
  78. Note: In the 8514/A this register is Writeonly,
  79.       In the Chips&Tech 82c480 it is Read/Write.
  80.  
  81. 12E8h W(W):  Vertical Total Register (V_TOTAL)
  82. bits  0-2  Vertical Total Adjust (VTADJ).
  83.      3-11  Vertical Total Base (VTB).
  84.            The Vertical Total is calculated as:
  85.            Vertical Total = (Scan Modulos * VTB)+VTADJ+1
  86.            Where the Scan Modulos is found from the DBLSCAN and
  87.            MEMCFG bits of the DISP_CNTL register (22E8h).
  88.  
  89.            DBLSCAN:      MEMCFG:     Scan Modulos:
  90.               0            0 0           2
  91.               0            0 1           4
  92.               0            1 0           6
  93.               0            1 1           8
  94.               1            0 0           4
  95.               1            0 1           8
  96.               1            1 0          12
  97.               1            1 1          16
  98.     12-15  Reserved(0)
  99. Note: In the 8514/A this register is Writeonly,
  100.       In the Chips&Tech 82c480 it is Read/Write.
  101.  
  102. 16E8h W(W):  Vertical Displayed Register (V_DISP)
  103. bits  0-2  Vertical Displayed Adjust (VDADJ)
  104.      3-11  Vertical Displayed Base (VDB)
  105.            The Vertical Displayed is calculated as:
  106.            Vertical Displayed = (Scan Modulos * VDB)+VDADJ+1
  107.            Where the Scan Modulos is the same as for
  108.            Vertical Total in 12E8h.
  109.     12-15  Reserved(0)
  110. Note: In the 8514/A this register is Writeonly,
  111.       In the Chips&Tech 82c480 it is Read/Write.
  112.  
  113. 1AE8h W(W):  Vertical Sync Start Register (V_SYNC_STRT)
  114. bits  0-2  Vertical Sync Start Adjust (VSADJ)
  115.      3-11  Vertical Sync Start Base (VSB)
  116.            The Vertical Sync Start is calculated as:
  117.            Vertical Sync Start = (Scan Modulos * VSB)+VSADJ+1
  118.            Where the Scan Modulos is the same as for
  119.            Vertical Total in 12E8h.
  120.     12-15  Reserved(0)
  121. Note: In the 8514/A this register is Writeonly,
  122.       In the Chips&Tech 82c480 it is Read/Write.
  123.  
  124. 1EE8h W(W):  Vertical Sync Width Register (V_SYNC_WID)
  125. bits  0-4  Number of scanlines in the Vertical Sync pulse.
  126.         5  Vertical Sync Polarity (VSYNCPOL).
  127.            If set the Vertical Sync pulse is Negative, else Positive.
  128.      6-15  Reserved(0)
  129. Note: In the 8514/A this register is Writeonly,
  130.       In the Chips&Tech 82c480 it is Read/Write.
  131.  
  132. 22E8h W(W):  Display Control Register (DISP_CNTL)
  133. bit     0  Odd Bank Enable (ODDBNKENAB).
  134.            If set use Horizontally Interleaved banks.
  135.            (Normal 8514/A mode).
  136.       1-2  Memory Configuration (MEMCFG).
  137.              0  NCLK     (PS8 Mode)
  138.              1  NCLK/2   (Normal 8514/A Mode)
  139.              2  NCLK/3
  140.              3  NCLK/4
  141.         3  (Double Scan) DBLSCAN. If set doublescan is enabled.
  142.         4  INTERLACE. Interlace if set.
  143.       5-6  Display Enable (DISPEN)
  144.               0 = No effect
  145.               1 = Enable Hsync, Vsync, Blank, data transfer cycles
  146.                   and refresh cycles.
  147.             2,3 = Disable Hsync, Vsync, Blank, data transfer cycles
  148.                   and refresh cycles.
  149.      7-15  Reserved(0)
  150. Note: In the 8514/A this register is Writeonly,
  151.       In the Chips&Tech 82c480 it is Read/Write.
  152.  
  153. 26E8h W(R):  Horizontal Total Register (H_TOTAL)
  154. Note: this register is written at 02E8 and read at 26E8h.
  155.  
  156. 2EE8h W(R):  Subsystem Control Register (SUBSYS_CNTL)
  157. Note: In the original IBM 8514/A this register is Write only.
  158.       In the CT82c480 it is written to 42E8h and read from 2EE8h.
  159.  
  160. 42E8h W(R):  Subsystem Status Register (SUBSYS_STAT)
  161. bit   0-3  Interrupt requests. These bits show the state of internal interrupt
  162.            requests. An interrupt will only occur if the corresponding bit(s)
  163.            in SUBSYS_CNTL is set. Interrupts can only be reset by writing a 1
  164.            to the corresponding Interrupt Clear bit in SUBSYS_CNTL.
  165.              Bit 0: VBLNKFLG
  166.                  1: PICKFLAG
  167.                  2: INVALIDIO
  168.                  3: GPIDLE
  169.       4-6  MONITORID.
  170.               1: IBM 8507 (1024x768) Monochrome
  171.               2: IBM 8514 (1024x768) Color
  172.               5: IBM 8503 (640x480) Monochrome
  173.               6: IBM 8512/13 (640x480) Color
  174.         7  8PLANE.
  175.            (CT82c480) This bit is latched on reset from pin P4D7.
  176.      8-11  CHIP_REV. Chip revision number.
  177.     12-15  (CT82c480) CHIP_ID. 0=CT 82c480.
  178.  
  179. 42E8h W(W):  Subsystem Control Register (SUBSYS_CNTL)
  180. bit   0-3  Interrupt Reset. Write 1 to a bit to reset the interrupt.
  181.            Bit 0  RVBLNKFLG   Write 1 to reset Vertical Blank interrupt.
  182.                1  RPICKFLAG   Write 1 to reset PICK interrupt.
  183.                2  RINVALIDIO  Write 1 to reset Queue Overflow/Data
  184.                               Underflow interrupt.
  185.                3  RGPIDLE     Write 1 to reset GPIDLE interrupt.
  186.       4-7  Reserved(0)
  187.         8  IBLNKFLG.   If set Vertical Blank Interrupts are enabled.
  188.         9  IPICKFLAG.  If set PICK Interrupts are enabled.
  189.        10  IINVALIDIO. If set Queue Overflow/Data Underflow Interrupts are
  190.                        enabled.
  191.        11  IGPIDLE.    If set Graphics Engine Idle Interrupts are enabled.
  192.     12-13  CHPTEST. Used for chip testing.
  193.     14-15  Graphics Processor Control (GPCTRL).
  194. Note: In the original IBM 8514/A this register is Write only.
  195.       In the CT82c480 it is written to 42E8h and read from 2EE8h.
  196.  
  197. 46E8h W(W):  ROM Page Select Register (ROM_PAGE_SEL)
  198. bit   0-2  Maps a 4KB page of the onboard 32K ROM to address C7000h-C7FFFh.
  199.         3  VGA Enable. If set enables the VGA
  200.            This bit is not implemented in the 8514/A, but in the VGA
  201.            controller.
  202.         4  VGA Setup.  If set the VGA is in Setup mode.
  203.            This bit is not implemented in the 8514/A, but in the VGA
  204.            controller.
  205.      5-15  Reserved(0)
  206. Note: In the 8514/A this register is Writeonly,
  207.       In the Chips&Tech 82c480 it is Read/Write.
  208.  
  209. 4AE8h W(W):  Advanced Function Control Register  (ADVFUNC_CNTL)
  210. bit     0  DISABPASSTHRU. If clear the VGA video is passed through the
  211.            8514/A RAMDAC, if set the 8514/A video is passed to the 8514/A
  212.            RAMDAC.
  213.         1  RSDV0. Reserved bit 0  = 1.
  214.         2  Clock Select (CLKSEL).
  215.            If set a clock of 44.900MHz is used (1024x768 interlaced)
  216.            if clear a clock of 25.175MHz is used (640x480).
  217.            The CT82c480 supports 8 clock frequencies through the
  218.            Extended Configuration Register EC3 (5EE8h).
  219.         3  RSDV1. Reserved bit 1 =0.
  220.      4-15  Reserved(0).
  221. Note: In the 8514/A this register is Writeonly,
  222.       In the Chips&Tech 82c480 it is Read/Write.
  223.  
  224. 52E8h W(R/W):  Extended Configuration Register (EC0)           (CT82c480 only)
  225. bit  0-15  Reserved.
  226.  
  227. 56E8h W(R/W):  Extended Configuration Register (EC1)           (CT82c480 only)
  228. bit  0-15  Reserved.
  229.  
  230. 5AE8h W(R/W):  Extended Configuration Register (EC2)           (CT82c480 only)
  231. bit   0-2  Reserved(1)
  232.       3-4  ROMBASE. Latched on reset from P4D3-4.
  233.            Determines start address of ROM:
  234.                     8K ROM         32K ROM
  235.                   MC     ISA      MC     ISA       MC =Micro Channel
  236.              0  0C8000  C6000   0D0000  D0000
  237.              1  0D8000  D8000   0D8000  D8000
  238.              2  0C0000  C0000   0C0000  C0000
  239.              3  0C6000  C8000   0C8000  C8000
  240.         5  ROMSIZE. Latched on reset from P4D5.
  241.            If set the ROM is 8K, if clear the ROM is 32K.
  242.         6  ROMPAGING. Latched from P4D6 on reset.
  243.            If set the ROMPG pins are outputs, if clear they are inputs.
  244.         7  8 Bit planes (8BP).
  245.       8-9  BANKS. Number of VRAM banks.
  246.             0=1  bank, 1=2 banks, 2=3 banks, 3=4 banks.
  247.        10  If set 256Kx4 VRAMs are used, if clear 64Kx4 VRAMs.
  248.            Sampled from MA8 on reset.
  249.        11  5-Pixel Nuggets (5PN). Latched from WE4/ on reset.
  250.            Determines whether there are 4 or 5 pixels to a nugget.
  251.        12  Reserved(0)
  252.        13  8-bit DAC Control (8BITDAC). If set the RAMDAC is 8bit rather than
  253.            6bit. On reset the 8BITDAC pin is sampled, then the pin turns into
  254.            an output driven by this bit. This can be used to switch a DAC with
  255.            6/8bit ability like an IMSG178 or BT478 between 6 and 8 bits.
  256.     14-15  Reserved(0)
  257.  
  258. 5EE8h W(R/W):  Extended Configuration Register (EC3)           (CT82c480 only)
  259. bit   0-3  Selects which registers will be read from BEE8h.
  260.         4  Alternate High Register Select (AHRS). If set writes to video
  261.            timing registers will go to the Alternate-High register set.
  262.         5  Alternate Low Register Select (ALRS). If set writes to video timing
  263.            registers will go to the Alternate-Low register set.
  264.         6  Alternate High Register Enable (AHRE). If set enables the Alternate
  265.            High-resolution video timing register set.
  266.         7  Alternate Low Register Enable (ALRE). If set enables the Alternate
  267.            Low-resolution video timing register set.
  268.      8-10  Clock Select 0-2 (CLKSEL0-2). The CT82c480 maintains 3 different
  269.            clock select register sets. On set each for Alternate High,
  270.            Alternate Low and normal video.
  271.        11  Reserved(0)
  272.        12  OVERRIDE. If set the normal video register set is used.
  273.            If clear the AHRE and ALRE determines the video register set used.
  274.            This bit is reset on any write to the ADVFUNC_CTRL register (4AE8h)
  275.     13-15  Reserved(0)
  276. Note: Writes to this register should be 8-bit.
  277.  
  278. 82E8h W(R/W):  Current Y Position Register (CUR_Y)
  279. bit  0-11  Y Position. Y co-ordinate of current position in pixels.
  280.     12-15  Reserved(0)
  281.  
  282. 86E8h W(R/W):  Current X Position Register (CUR_X)
  283. bit  0-11  X Position. X co-ordinate of current position in pixels.
  284.     12-15  Reserved(0).
  285. Note: In 5PN mode bits 11, 1 and 0 are remainder bits, bits 2-10 are the
  286.       current X position modulo 5.
  287.  
  288. 8AE8h W(R/W):  Destination Y Position & Axial Step Constant Register
  289.                (DESTY_AXSTP)
  290. bit  0-11  During BITBLT operations this is the Y co-ordinate of the
  291.            destination in pixels. During Line Drawing, this is the Bresenham
  292.            constant 2*dminor. (dminor is the length of the line projected
  293.            onto the minor or dependent axis).
  294.        12  AXSTPSIGN. Sign bit for Axial Step Constant.
  295.            Should be 0 during BITBLT operations.
  296.     13-15  Reserved(0)
  297. Note: In the original IBM 8514/A this register is Write only. In the CT82c480
  298.       it is read/writable
  299.  
  300. 8EE8h W(R/W):  Destination X Position & Diagonal Step Constant Register
  301.                (DESTX_DISTP)
  302. bit  0-11  During BITBLT operations this is the X co-ordinate of the
  303.            destination in pixels.
  304.            During Line Drawing this is the Bresenham constant 2*dminor-
  305.            2*dmajor. (dminor is the length of the line projected onto
  306.            the minor or dependent axis, dmajor is the length of the
  307.            line projected onto the major or independent axis)
  308.        12  DGSTPSIGN. Sign bit for Diagonal Step Constant
  309.            (Should be set to 0 for BITBLT operations).
  310.     13-15  Reserved(0)
  311. Note: In the original IBM 8514/A this register is Write only. In the CT82c480
  312.       it is read/writable
  313.  
  314. 92E8h W(R/W):  Error Term Register (ERR_TERM).
  315. bit  0-12  Initial Error Term. This register is programmed to the Bresenham
  316.            initial error term before a line drawing command is issued.
  317.     13-15  Reserved. These bits are read/writable but have no function.
  318.  
  319. 96E8h W(R/W):  Major Axis Pixel Count & Rectangle Width Register
  320.                (MAJ_AXIS_PCNT)
  321. bit  0-10  For BITBLT and rectangle commands this is the width of the area.
  322.            For Line Drawing this is the Bresenham constant dmajor.
  323.            Must be positive.
  324.     11-15  Reserved(0)
  325. Note: In the original IBM 8514/A this register is Write only.
  326.       In the CT82c480 it is read/writable
  327.  
  328. 9AE8h W(R):  Graphics Processor Status Register (GP_STAT)
  329. bit   0-7  Queue State.
  330.              00h = 8 words available - queue is empty
  331.              01h = 7 words available
  332.              03h = 6 words available
  333.              07h = 5 words available
  334.              0Fh = 4 words available
  335.              1Fh = 3 words available
  336.              3Fh = 2 words available
  337.              7Fh = 1 word available
  338.              FFh = 0 words available - queue is full
  339.         8  DATARDY. If set data is ready to be read from
  340.            the PIX_TRANS register (E2E8h).
  341.         9  Graphics Processor Busy (GPBUSY)
  342.            If set the Graphics Processor is busy.
  343.     10-15  Reserved(0)
  344.  
  345. 9AE8h W(W):  Command Register (CMD)
  346. bit     0  WRTDATA. If set VRAM write operations are enabled. If clear
  347.            operations execute normally but no writes to memory is performed.
  348.         1  PLANAR defines the orientation of the display bitmap.
  349.              0=Through plane mode, 1=Across plane mode.
  350.         2  If set the last pixel of a line command (CMD_LINE, SSV or LINEAF)
  351.            is not drawn. This is used for mixes such as XOR where drawing the
  352.            same pixel twice would give the wrong color.
  353.            For rectangle commands the effect is different depending on the
  354.            INC_X and INC_Y fields:
  355.               CMD_RECT
  356.                  If INC_X is set then the rightmost column is not drawn,
  357.                  if clear the leftmost column is not drawn.
  358.               CMD_RECTV1
  359.                  If INC_Y is set the bottom row is not drawn,
  360.                  if clear the top row is not drawn.
  361.               CMD_RECTV2
  362.                  No effect
  363.               CMD_BITBLT
  364.                  If INC_X set the rightmost column is not drawn,
  365.                  if clear the leftmost column is not drawn.
  366.         3  LINETYPE.
  367.              0: Bresenham line drawing
  368.                   CMD_LINE draws a line using the Bresenham algorithm as
  369.                   specified in the DESTY_AXSTP (8AE8h), DESTX_DIASTP (8EE8h),
  370.                   ERR_TERM (92E8h) and MAJ_AXIS_PCNT (96E8h) registers
  371.              1: Vector line draws.
  372.                   CMD_NOP allows drawing of Short Stroke Vectors (SSVs) by
  373.                   writing to the Short Stroke register (9EE8h).
  374.                   CMD_LINE draws a vector of length MAJ_AXIS_PCNT (96E8h)
  375.                   in the direction specified by LINEDIR (bits 5-7).
  376.         4  DRAW. If clear the current position is moved, but no pixels
  377.            are modified. This bit should be set when attempting read or
  378.            write of bitmap data.
  379.       5-7  LINEDIR. When a line draw command (CMD_LINE) with LINETYPE=1
  380.            is issued, these bits define the direction of the line
  381.            counter clockwise relative to the positive X-axis.
  382.              0 = 000 degrees
  383.              1 = 045 degrees
  384.              2 = 090 degrees
  385.              3 = 135 degrees
  386.              4 = 180 degrees
  387.              5 = 225 degrees
  388.              6 = 270 degrees
  389.              7 = 315 degrees
  390.         5  INC_X. This bit together with INC_Y determines which quadrant
  391.            the slope of a line lies within. They also determine the
  392.            orientation of rectangle draw commands.
  393.            If set lines are drawn in the positive X direction (left to right).
  394.         6  YMAJAXIS. For Bresenham line drawing commands this bit determines
  395.            which axis is the independent or major axis. INC_X and INC_Y
  396.            determines which quadrant the slope falls within. This bit further
  397.            defines the slope to within an octant.
  398.            If set Y is the major (independent) axis.
  399.         7  INC_Y. This bit together with INC_X determines which quadrant
  400.            the slope of a line lies within. They also determine the
  401.            orientation of rectangle draw commands.
  402.            If set lines are drawn in the positive Y direction (down).
  403.         8  (Pixel Data Enable) PCDATA.
  404.            If set the drawing engine waits for read/write of the PIX_TRANS
  405.            register (E2E8h) for each pixel during a draw operation.
  406.         9  16BIT. If set the PIX_TRANS register (E2E8h) is processed
  407.            internally as two bytes in the order specified by BYTSEQ.
  408.            If clear all accesses are 8bit.
  409.     10-11  Reserved(0)
  410.        12  Byte Sequence (BYTSEQ). Affects both reads and writes of
  411.            SHORT_STROKE (9EE8h) and PIX_TRANS (E2E8h) when 16bit=1.
  412.            If set take low byte first, if clear take high byte first.
  413.     13-15  Draw Command:
  414.             0 = CMD_NOP.    (Should be used for Short Stroke Vectors).
  415.             1 = CMD_LINE
  416.             2 = CMD_RECT    (Fill rectangle in X direction)
  417.             3 = CMD_RECTV1  (Fill rectangle in Y direction)
  418.             4 = CMD_RECTV2  (Fast filled Y direction rectangle)
  419.             5 = CMD_LINEAF  (Outline)
  420.             6 = CMD_BITBLT  (Copy rectangle)
  421.             7 = illegal
  422.  
  423. 9EE8h W(R/W):  Short Stroke Vector Transfer Register (SHORT_STROKE)
  424. bit   0-3  Length of vector projected onto the major axis.
  425.            This is also the number of pixels drawn.
  426.         4  Must be set for pixels to be written.
  427.       5-7  VECDIR. The angle measured counter-clockwise from horizontal
  428.            right) at which the line is drawn,
  429.              0 = 000 degrees
  430.              1 = 045 degrees
  431.              2 = 090 degrees
  432.              3 = 135 degrees
  433.              4 = 180 degrees
  434.              5 = 225 degrees
  435.              6 = 270 degrees
  436.              7 = 315 degrees
  437.      8-15  The lower 8 bits are duplicated in the upper 8 bits so two
  438.            short stroke vectors can be drawn with one command.
  439. Note: The upper byte must be written for the SSV command to be executed.
  440.       Thus if a byte is written to 9EE8h another byte must be written to
  441.       9EE9h before execution starts. A single 16bit write will do.
  442.       If only one SSV is desired the other byte can be set to 0.
  443. Note: In the original IBM 8514/A this register is Write only.
  444.       In the CT82c480 it is read/writable
  445.  
  446. A2E8h W(W):  Background Color Register (BKGD_COLOR)
  447. bit   0-7  Background Color. This is the color used for writing pixels
  448.            where the Foreground Color Mix is selected and FSS=0, or the
  449.            Background Color Mix is selected and BSS=0.
  450.      8-15  Reserved(0)
  451. Note: During drawing commands reading this register is equivalent to
  452.       reading the PIX_TRANS register (E2E8h).
  453.       This register is writable when GPBUSY=DATARDY=0 or when PCDATA=0.
  454.       Otherwise during drawing commands with PCDATA=1 a write to A2E8h
  455.       functions as a write to the PIX_TRANS register.
  456.  
  457. A6E8h W(W):  Foreground Color Register (FRGD_COLOR)
  458. bit   0-7  Foreground Color. This is the color used for writing pixels
  459.            where the Foreground Color Mix is selected and FSS=1, or the
  460.            Background Color Mix is selected and BSS=1.
  461.      8-15  Reserved(0)
  462. Note: During drawing commands reading this register is equivalent to
  463.       reading the PIX_TRANS register (E2E8h).
  464.       This register is writable when GPBUSY=DATARDY=0 or when PCDATA=0.
  465.       Otherwise during drawing commands with PCDATA=1 a write to A6E8h
  466.       functions as a write to the PIX_TRANS register.
  467.  
  468. AAE8h W(R/W):  Write Mask Register (WRT_MASK)
  469. bit   0-7  Writemask. A plane can only be modified if the corresponding
  470.            bit is set.
  471.      8-15  Reserved(0)
  472. Note: In the original IBM 8514/A this register is Write only.
  473.       In the CT82c480 it is read/writable
  474.  
  475. AEE8h W(R/W):  Read Mask Register (RD_MASK)
  476. bit   0-7  Read Mask affects the following commands: CMD_RECT, CMD_BITBLT
  477.            and reading data in Across Plane Mode.
  478.            Each bit set prevents the plane from being read.
  479.      8-15  Reserved(0)
  480. Note: In the original IBM 8514/A this register is Write only.
  481.       In the CT82c480 it is read/writable
  482.  
  483. B2E8h W(R/W):  Color Compare Register (COLOR_CMP)
  484. bit   0-7  This is an 8 bit color which is compared to the destination
  485.            data during BitBlts. The arithmetic comparison to be used
  486.            (<,>,=,true,false, etc..) is specified by the COLCMPO bits
  487.            of the PIX_CNTL register.
  488.            If the result of the comparison is true, the destination data
  489.            is left unchanged.
  490.      8-15  Reserved(0)
  491. Note: In the original IBM 8514/A this register is Write only.
  492.       In the CT82c480 it is read/writable
  493.  
  494. B6E8h W(R/W):  Background Mix Register (BKGD_MIX)
  495. bit   0-4  Background MIX (BACKMIX).
  496.             00  not DST
  497.             01  0 (false)
  498.             02  1 (true)
  499.             03  2 DST
  500.             04  not SRC
  501.             05  SRC xor DST
  502.             06  not (SRC xor DST)
  503.             07  SRC
  504.             08  not (SRC and DST)
  505.             09  (not SRC) or DST
  506.             0A  SRC or (not DST)
  507.             0B  SRC or DST
  508.             0C  SRC and DST
  509.             0D  SRC and (not DST)
  510.             0E  (not SRC) and DST
  511.             0F  not (SRC or DST)
  512.             10  min(SRC,DST)
  513.             11  DST-SRC with underflow
  514.             12  SRC-DST with underflow
  515.             13  SRC+DST with overflow
  516.             14  max(SRC,DST)
  517.             15  (DST-SRC)/2 with underflow
  518.             16  (SRC-DST)/2 with underflow
  519.             17  (SRC+DST)/2 with overflow
  520.             18  DST-SRC with saturate
  521.             19  DST-SRC with saturate
  522.             1A  SRC-DST with saturate
  523.             1B  SRC+DST with saturate
  524.             1C  (DST-SRC)/2 with saturate
  525.             1D  (DST-SRC)/2 with saturate
  526.             1E  (SRC-DST)/2 with saturate
  527.             1F  (SRC+DST)/2 with saturate
  528.            DST is always the destination bitmap, bit SRC has four
  529.            possible sources selected by the BSS bits.
  530.       5-6  Background Source Select (BSS)
  531.              0  BSS is Background Color
  532.              1  BSS is Foreground Color
  533.              2  BSS is Pixel Data from the PIX_TRANS register (E2E8h)
  534.              3  BSS is Bitmap Data (Source data from display buffer).
  535.      7-15  Reserved(0)
  536. Note: In the original IBM 8514/A this register is Write only.
  537.       In the CT82c480 it is read/writable
  538.  
  539. BAE8h W(R/W):  Foreground Mix Register (FRGD_MIX)
  540. bit   0-4  Foreground MIX (FOREMIX).
  541.            Same as BACKMIX in B6E8h.
  542.       5-6  Foreground Source Select (FSS)
  543.              0  FSS is Background Color
  544.              1  FSS is Foreground Color
  545.              2  FSS is Pixel Data from the PIX_TRANS register (E2E8h)
  546.              3  FSS is Bitmap Data (Source data from display buffer).
  547.      7-15  Reserved(0)
  548. Note: In the original IBM 8514/A this register is Write only.
  549.       In the CT82c480 it is read/writable
  550.  
  551. BEE8h W(W):  Multifunction Control Register (MULTIFUNC_CTRL)
  552. bit  0-11  Data.
  553.     12-15  INDEX. indicates which Multifunction register
  554.            will be written with the data in bits 0-11.
  555. Note: Several registers are placed at BEE8h. When BEE8 is written
  556.       the bits 12-15 selects the specific register to receive the write.
  557. Note: In the original IBM 8514/A these registers are write-only.
  558.       The CT 82c480 allows reading the registers by writing the index
  559.       to bits 0-3 of the Extended Configuration Register 3 (5EE8h)
  560.       and then reading BEE8h. Bits 12-15 read are not valid.
  561.  
  562. BEE8h index 00h W(W): Minor Axis Pixel Count Register (MIN_AXIS_PCNT).
  563. bit  0-10  Height of BITBLT or rectangle command.
  564.            Actual height is one larger.
  565.        11  Reserved(0)
  566. Note: See note above on reading BEE8h.
  567.  
  568. BEE8h index 01h W(W):  Top Scissors Register (SCISSORS_T).
  569. bit  0-11  Minimum Y co-ordinate value for the scissors rectangle.
  570. Note: See note above on reading BEE8h.
  571.  
  572. BEE8h index 02h W(W):  Left Scissors Registers (SCISSORS_L).
  573. bit  0-11  Minimum X co-ordinate value for the scissors rectangle.
  574. Note: See note above on reading BEE8h.
  575.  
  576. BEE8h index 03h W(W):  Bottom Scissors Register (SCISSORS_B).
  577. bit  0-11  Maximum Y co-ordinate value for the scissors rectangle.
  578. Note: See note above on reading BEE8h.
  579.  
  580. BEE8h index 04h W(W):  Right Scissors Register (SCISSORS_R).
  581. bit  0-11  Maximum X co-ordinate value for the scissors rectangle.
  582. Note: See note above on reading BEE8h.
  583.  
  584. BEE8h index 05h W(W):  Memory Control Register (MEM_CNTL).
  585. bit   0-1  HORCFG. Xco-ordinate divider.
  586.              0=4, 1=5, 2=8 and 3=10.
  587.            Bit 0 is set if using 5-pixel operations
  588.            and bit 1 is set if the VRAMs are interleaved horizontally.
  589.       2-3  VRTCFG.  VRAM banks.
  590.            If using 256KBit banks 0=2 banks and 1=4banks.
  591.            If using 1MBit banks 1=1 Bank, 2=2 banks and 3=4 banks.
  592.         4  BUFSWP. Used to select planes when in Pseudo 8-plane mode.
  593.            If set buffer 1 (upper 4 planes) is selected.
  594.            If clear buffer 0 (lower 4 planes) is selected.
  595.      5-11  Reserved(0)
  596. Note: See note above on reading BEE8h.
  597.  
  598. BEE8h index 08h W(W):  Fixed Pattern Low Register (PATTERN_L).
  599. bit   0-4  Mask low is used to select the mix on a pixel by pixel basis.
  600.            If MIXSEL=01 then test pattern registers are used to select
  601.            ForeGround or background mix. Mask Low applies to even numbered
  602.            nuggets (0 is leftmost on the screen).
  603.            A 0 selects BACKMIX and a 1 selects FOREMIX.
  604.            Bit 4 is pixel 0 and bit 0 is pixel 4 (if in 5PN mode).
  605.      5-11  Reserved(0)
  606. Note: See note above on reading BEE8h.
  607.  
  608. BEE8h index 09h W(W):  Fixed Pattern High Register (PATTERN_H).
  609. bit   0-4  Mask low is used to select the mix on a pixel by pixel basis.
  610.            If MIXSEL=01 then test pattern registers are used to select
  611.            ForeGround or background mix. Mask High applies to odd numbered
  612.            nuggets (0 is leftmost on the screen).
  613.            A 0 selects BACKMIX and a 1 selects FOREMIX.
  614.            Bit 4 is pixel 0 and bit 0 is pixel 4 (if in 5PN mode).
  615.      5-11  Reserved(0)
  616. Note: See note above on reading BEE8h.
  617.  
  618. BEE8h index 0Ah W(W):  Pixel Control Register (PIX_CNTL).
  619. BIT     0  Intra-Nugget Alignment (INA5PN).
  620.            If set BitBlt data in the internal data buffer is aligned on
  621.            Modulos 5 basis rather than Modulos 4.
  622.       1-2  PLANEMODE.
  623.              0  Normal Operation
  624.              1  Indeterminate
  625.              2  Fill area using RD_MASK as boundary mask.
  626.                 Does not fill second edge of boundary;
  627.                 Plane Mask is a mixture of RD_MASK and WRT_MASK.
  628.              3  Fill area using WRT_MASK as boundary mask.
  629.                 Does fill second edge of boundary;
  630.                 Plane Mask is WRT_MASK (although RD_MASK must be
  631.                 non-zero for correct operation).
  632.       3-5  Color Comparison operation (COLCMPOP).
  633.            Determines the comparison performed on each pixel.
  634.              0  False  (always write DST)
  635.              1  true   (never write DST)
  636.              2  DST >= COLOR_CMP
  637.              3  DST <  COLOR_CMP
  638.              4  DST <> COLOR_CMP
  639.              5  DST =  COLOR_CMP
  640.              6  DST <= COLOR_CMP
  641.              7  DST >  COLOR_CMP
  642.       6-7  Mix Select (MIXSEL).
  643.              0  FOREMIX is always used.
  644.              1  PATTERN_L,PATTERN_H select mix.
  645.              2  Data from PIX_TRANS selects the mix (1=FOREMIX).
  646.              3  SRC selects mix (used for transparency during BITBLT).
  647.      8-11  Reserved(0)
  648. Note: See note above on reading BEE8h.
  649.  
  650. E2E8h W(R/W):  Pixel Data Transfer Register (PIX_TRANS)
  651. bit  0-15  Data can be read from or written to the display buffer.
  652.            In through plane mode (PLANAR=0), bits 0-7 and 8-15 map onto
  653.            bit planes 0-7 of an individual pixel.
  654.            In across plane mode (PLANAR=1) bits 0-4 and 8-12 map onto pixels
  655.            0-4 within a nugget (1 bit per pixel).
  656. Note: The original IBM 8514/A should always be accessed with 16bit read/writes
  657. Note: The original IBM 8514/A can also access this register at A2E8h and A6E8h
  658.       during drawing commands.
  659.